1395D - Boboniu Chats with Du - CodeForces Solution


brute force dp greedy sortings *1800

Please click on ads to support us..

C++ Code:

#include<bits/stdc++.h>
using namespace std;
using LL = long long;
int main(){
	ios::sync_with_stdio(false);cin.tie(0);
	int n, d, m;
	cin >> n >> d >> m;
	vector<LL> a, b;
	for (int i = 0; i < n; i ++ ){
		int x;
		cin >> x;
		if (x > m){
			a.push_back(x);
		}
		else{
			b.push_back(x);
		}
	}
	sort(a.begin(), a.end());
	sort(b.begin(), b.end());
	a.push_back(0);
	b.push_back(0);
	reverse(a.begin(), a.end());
	reverse(b.begin(), b.end());
	for (int i = 1; i < a.size(); i ++ ){
		a[i] += a[i - 1];
	}
	for (int i = 1; i < b.size(); i ++ ){
		b[i] += b[i - 1];
	}
	
	LL ans = b.back();
	for (int i = 1; i < a.size(); i ++ ){
		int cnt = (i - 1) * (d + 1) + 1;
		if (cnt > n) break;
		
		ans = max(ans, a[i] + b[min(int(b.size()) - 1, n - cnt)]);
	}
	cout << ans << "\n";
	return 0;
}
 	   		 		 	  	 			  	 					  	


Comments

Submit
0 Comments
More Questions

1661C - Water the Trees
1459A - Red-Blue Shuffle
1661B - Getting Zero
1661A - Array Balancing
1649B - Game of Ball Passing
572A - Arrays
1455A - Strange Functions
1566B - MIN-MEX Cut
678C - Joty and Chocolate
1352E - Special Elements
1520E - Arranging The Sheep
1157E - Minimum Array
1661D - Progressions Covering
262A - Roma and Lucky Numbers
1634B - Fortune Telling
1358A - Park Lighting
253C - Text Editor
365B - The Fibonacci Segment
75A - Life Without Zeros
1519A - Red and Blue Beans
466A - Cheap Travel
659E - New Reform
1385B - Restore the Permutation by Merger
706A - Beru-taxi
686A - Free Ice Cream
1358D - The Best Vacation
1620B - Triangles on a Rectangle
999C - Alphabetic Removals
1634C - OKEA
1368C - Even Picture